pecl/http

About:

Extended HTTP support. Again.

Installation:

This extension is hosted at PECL and can be installed with PEAR's pecl command:


# pecl install pecl_http

Dependencies:

pecl/http depends on a number of system libraries and PHP extensions for special features.

Required system libraries:

The following system libraries are required to build this extension:

zlib
Provides gzip/zlib/deflate encoding.
Configure: --with-http-zlib-dir
Minimum version: 1.2.0.4
Install on Debian: apt-get install zlib1g-dev

Optional system libraries:

The following system libraries are optional and provide additional features:

libcurl
Provides HTTP request functionality.
Configure: --with-http-libcurl-dir
Minimum version: 7.18.2
Install on Debian: apt-get install libcurl4-openssl-dev
libbrotli
Provides brotli encoding.
Configure: --with-http-libbrotli-dir
Minimum version: 1.0
Install on Debian: apt-get install libbrotli-dev
libevent
Internal event loop support for the HTTP client.
Configure: --with-http-libevent-dir
Minimum version: none
Install on Debian: apt-get install libevent-dev
libicu
Provides IDNA2003 and/or IDNA2008 support in URLs.
Configure: --with-http-libicu-dir
Minimum version: none
Install on Debian: apt-get install libicu-dev
libidn
Provides IDNA2003 support in URLs.
Configure: --with-http-libidn-dir
Minimum version: none
Install on Debian: apt-get install libidn11-dev
libidn2
Provides IDNA2008 support in URLs.
Configure: --with-http-libidn2-dir
Minimum version: none
Install on Debian: apt-get install libidn2-0-dev
libidnkit
Provides IDNA2003 support in URLs. Conflicts with libidnkit2.
Configure: --with-http-libidnkit-dir
Minimum version: none
Install on Debian: N/A
libidnkit2
Provides IDNA2008 support in URLs. Conflicts with libidnkit.
Configure: --with-http-libidnkit2-dir
Minimum version: none
Install on Debian: N/A
A note on IDNA libraries:

If configured with multiple IDNA libraries' support, there's a run-time precedence of ICU over GNU libidn, which in turn has precendence over idnkit. If neither IDNA2008, nor IDNA2003 is explicitly requested, IDNA2008 has precendence.

A note on the CURL library:

There are usually different styles of SSL support for libcurl available, so you can choose between 'openssl' and f.e. 'nss' or 'gnutls' when installing libcurl.

PHP extensions:

This extension unconditionally depends on the pre-loaded presence of the following PHP extensions:

If configured --with-http-shared-deps (default) it depends on the pre-loaded presence of the following extensions, as long as they were available at build time:

Please ensure that all extension on which pecl/http depends, are loaded before it, e.g in your php.ini:


; obligatory deps
extension = raphf.so
extension = propro.so (PHP < 8.0, ext-http < 3.0 only)

; if shared deps were enabled
extension = hash.so
extension = iconv.so
extension = json.so

; finally load pecl/http
extension = http.so

INI Directives:

Stream Filters:

The http extension registers the http.* namespace for its stream filters. Provided stream filters are:

Changelog:

  1. v2.0.4
    • Dropped the pecl/event conflict.
  2. v2.4.0
    • Dropped the ext/json dependency.
  3. v2.4.2
    • Added libidn2 and libicu as fallback for IDNA support.
  4. v2.6.0, v3.1.0
    • Added idnkit-1 IDNA2003 support.
    • Added idnkit-2 IDNA2008 support.
    • Added ICU IDNA2008 support.
    • Added explicit configuration options for each IDNA library.
  5. v3.2.0
    • Added brotli encoding support.

Editor Stub:

This extension provides a stub file four your editor's auto-completion.

Download the Stub file:

Namespaces, Interfaces and Classes: